1. Technical Field
The present invention relates in general to a system and method for rejuvenating a computer system. In particular, the present invention relates to a system and method for restoring a previously saved system image, automatically applying any patches to the image, and retaining user files and customizations.
2. Description of the Related Art
Personal computer systems are relatively inexpensive and often provide exceptional computer power to an individual user. The personal computer systems each have a power supply, one or more processors, memory, nonvolatile storage, and input/output (I/O) devices that typically include a display monitor, a keyboard, and a selection device, such as a mouse. Personal computer systems provide flexibility in that a user can use the personal computer system whenever power is available to the system. Applications loaded on the personal computer system are therefore available whenever the user wishes to use them.
When a computer is first set up, an operating system, such as Linux™ or Microsoft Windows™, is installed to control operation of the computer system. Modern operating systems are often very complex and include “metadata” describing the applications and other files that are installed on the system. When an application is installed, the operating system records data about the application (metadata). In some operating systems, the metadata is stored in a database. In the Microsoft Windows™ operating system, the database is referred to as a “registry.”
In theory, when an application is removed from the system the registry data is removed as well. Likewise, when a user upgrades from one version of an application to another, the new version information is supposed to overwrite the original version information. However, in practice, data in the registry is often not deleted or updated correctly and, over time, the registry becomes unduly cumbersome and/or corrupted causing the operating system to take considerable time to retrieve application settings and perform user requests.
To address this challenge, some programs have been marketed, such as GoBack™, that allows the user to remove a latest set of changes. While this is useful to counteract a poorly behaved program that is newly installed, the problem of these types of programs is that they only allow the user to revert back a certain amount of time, depending upon the storage allocated to the program. Another problem with these types of programs is that they remove both the good and the bad—while a poorly behaved program may be removed, the program will also remove security patches and other patches that have been applied to well behaved applications. The removal of these patches, especially those to the operating system, can leave a system exposed to attacks from malicious users over a network, such as the Internet.
What is needed, therefore, is a system and method that allows a user to capture images of the primary drive onto a second nonvolatile storage device so that when system performance becomes sluggish, one of the saved images can be copied from the second nonvolatile device to the primary drive. Furthermore, what is needed is a system and method that retains the user data and customizations made to applications. Finally, what is needed is a system and method that re-applies patches to the operating system and applications stored in the image.